The Cardano developers need to learn three different languages in

order to write smart contracts on Cardano, which are as follows:

Plutus

Rosetta

Marlowe

However, internally, Cardano is written in Haskell.

“Haskell is a general-purpose, statically typed, purely functional

programming language with type inference and lazy evaluation”

as per Wiki.

Cardano functions can be written independently and tested in

complete isolation. Hence, Haskell enables Cardano to write

powerful methods and better testability. Now, let’s explore the three

languages of Cardano.

5.5.1 Plutus

It’s the Turing complete smart contract language for Cardano,

originally written in Haskell. Hence, again, it’s a purely functional

programming language with full-stack programming environment.

5.5.2 Marlowe

Marlowe, which is a domain specific language (DSL), was introduced

later to Cardano and it was specially crafted to handle writing and

executing financial contracts conveniently. The learning curve in

Marlowe is quite low, and hence, it’s highly recommended for

building Decentralized Finance (DeFi) applications. Marlowe also

comes with a playground or a sandbox environment using which the

developer can easily develop, simulate, and test smart contracts.

5.5.3 Rosetta

Rosetta provides a set of tools to integrate the other external layers

with Blockchains.

5.6 Wallet